home *** CD-ROM | disk | FTP | other *** search
/ Chip 2007 January, February, March & April / Chip-Cover-CD-2007-02.iso / Pakiet bezpieczenstwa / mini Pentoo LiveCD 2006.1 / mpentoo-2006.1.iso / livecd.squashfs / usr / include / sound / seq_midi_event.h < prev    next >
C/C++ Source or Header  |  2006-01-09  |  2KB  |  55 lines

  1. #ifndef __SOUND_SEQ_MIDI_EVENT_H
  2. #define __SOUND_SEQ_MIDI_EVENT_H
  3.  
  4. /*
  5.  *  MIDI byte <-> sequencer event coder
  6.  *
  7.  *  Copyright (C) 1998,99 Takashi Iwai <tiwai@suse.de>,
  8.  *                        Jaroslav Kysela <perex@suse.cz>
  9.  *
  10.  *   This program is free software; you can redistribute it and/or modify
  11.  *   it under the terms of the GNU General Public License as published by
  12.  *   the Free Software Foundation; either version 2 of the License, or
  13.  *   (at your option) any later version.
  14.  *
  15.  *   This program is distributed in the hope that it will be useful,
  16.  *   but WITHOUT ANY WARRANTY; without even the implied warranty of
  17.  *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  18.  *   GNU General Public License for more details.
  19.  *
  20.  *   You should have received a copy of the GNU General Public License
  21.  *   along with this program; if not, write to the Free Software
  22.  *   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
  23.  */
  24.  
  25. #include "asequencer.h"
  26.  
  27. #define MAX_MIDI_EVENT_BUF    256
  28.  
  29. typedef struct snd_midi_event_t snd_midi_event_t;
  30.  
  31. /* midi status */
  32. struct snd_midi_event_t {
  33.     int qlen;        /* queue length */
  34.     int read;        /* chars read */
  35.     int type;        /* current event type */
  36.     unsigned char lastcmd;    /* last command (for MIDI state handling) */
  37.     unsigned char nostat;    /* no state flag */
  38.     int bufsize;        /* allocated buffer size */
  39.     unsigned char *buf;    /* input buffer */
  40.     spinlock_t lock;
  41. };
  42.  
  43. int snd_midi_event_new(int bufsize, snd_midi_event_t **rdev);
  44. void snd_midi_event_free(snd_midi_event_t *dev);
  45. void snd_midi_event_reset_encode(snd_midi_event_t *dev);
  46. void snd_midi_event_reset_decode(snd_midi_event_t *dev);
  47. void snd_midi_event_no_status(snd_midi_event_t *dev, int on);
  48. /* encode from byte stream - return number of written bytes if success */
  49. long snd_midi_event_encode(snd_midi_event_t *dev, unsigned char *buf, long count, snd_seq_event_t *ev);
  50. int snd_midi_event_encode_byte(snd_midi_event_t *dev, int c, snd_seq_event_t *ev);
  51. /* decode from event to bytes - return number of written bytes if success */
  52. long snd_midi_event_decode(snd_midi_event_t *dev, unsigned char *buf, long count, snd_seq_event_t *ev);
  53.  
  54. #endif /* __SOUND_SEQ_MIDI_EVENT_H */
  55.